Clean Code (1-8章)

时间: 2016/5/5 星期四

自写代码以来,逐渐意识代码代码规范的重要性,不过代码该怎么写更多的是自己的一些体会以及在阅读其他人的代码时的感受。后来开始接触项目开发之后,仅仅是代码块的规范还是不够,于是看了一些设计模式的书籍,了解并尝试使用MVC、MVP等架构。这次看Clean Code这本书还是第一次系统地学习“如何写代码”,作者很详尽地将一些“写代码”规范进行系统整理。

下面我整理的是各章(1-8)一些主要的点

一、整洁代码

  1. 概念
    代码正确   
    简洁明了
    清晰易读  
    短小精确
    
    二、命名
    1.准确:
    名字与意义匹配     
    易于区别      
    
    2.实用
    使用读的出来的名称   
    使用可搜索的名称  
    
    3.明确
    一个概念对应一个词  
    不用双关语   
    使用有意义的语境   
    
    三、函数
    1.短小
    2.职责单一
    3.一块代码中,函数的抽象层级需一致
    4.函数命名规范(参照二)
    5.参数尽可能少
    6.如果函数需要的参数要求数量有多种,应考虑将其封装成类
    7.实用异常类代替返回错误码,抽离try/catch代码块,使代码更加简洁
    
    四、注释
     1.少用注释,尽可能通过规范的代码来表达
     2.不使用无意义的注释
     3.必要的注释
        法律信息
       提供信息的注释
       对代码意图进行解释的注释
       警示信息,防止踩坑
       TODO注释:未来得及完成的部分
    4. 对于无用的代码应直接删除而不是注释
    
    五、格式
    1.为什么需要规范格式
         易维护
         易拓展
    2.垂直格式
         行数少,短小精悍
         概念隔离,不同的的概念/逻辑 代码实用空行隔离
         相关靠近:对于关系紧密的代码,尽量写在一起
    3.水平格式
         缩进、对齐
    
    六、对象与数据结构
    1.区别:
         过程式代码便于在不改动既有数据结构的前提下添加新函数
         面向对象代码便于在不改动既有函数的前提下添加新类
     亦即:
             过程式代码难以添加新数据结构,因为必须修改所有函数
             面向对象代码难以添加新函数,因为必须修改所有类
    
    七、错误处理
    1.使用异常而非返回码:
         更加美观、整洁
    2.使用不可控异常
         可控异常的代价是违反开放/闭合原则,因为你需要在使用的地方捕获异常
    3.在异常发生的地方添加环境说明:
         这样当异常发生的时候就可以根据这些信息定位异常原因
    4.不返回null 也不传递null
         这样在接收的时候不需要进行空值检查
    
    八、边界
    翻了下原书,边界是Boundaries   对于这个名字,开始不是大理解,就算现在看来也还是觉得不直观
    
    标题略晦涩:作者的意思应该是让我们让自己的代码和第三方库代码不要耦合太紧密,需有清新的边界
    对于第三方类库给的学习建议是:探索性地学习测试,以此熟悉类库,写出良好的代码
    

第九章时讲单元测试,这个之前在实际开发中还没使用过,只是在一些书上看到过,明天尝试下再继续看

Contents
|